Parallel algorithms can be specifically written to execute on computers with multiple processing units. They are often modeled using parallel random-access machines (PRAM) which allow for an unlimited number of processors that can access shared memory uniformly. A common parallel algorithm is matrix multiplication, which can multiply two matrices of size n x m and m x p in O(n3) time using n3/p processors by distributing the work across processors. Parallel shortest path algorithms like Floyd's algorithm find shortest paths between all pairs of vertices in a graph and have parallel versions that distribute the matrix computations across multiple processors.